A method of detecting and correcting errors using error-correcting code (ECC) may be used to protect data stored in memories. Memories having a function of error detection and correction using ECC detect and correct single-bit errors and detect double-bit errors while data is being read. The function of error detection and correction using ECC is used in, for example, random-access memories (RAMs) according to Dual In-line Memory Module (DIMM) Standard. The function of error detection and correction is also used to protect data to be transferred to buses.
As another example method of detecting and correcting errors in memories, 4-bit data including 2-bit data and additional redundant 2-bit data may be recorded in memory cells, and read data may be converted such that correct data is read out with a high possibility even if one or two bits of the 4-bit data are inverted from “0” to “1”. Furthermore, 1-bit information may be recorded in three or more memory cells, and outputs from the memory cells may be subjected to majority decision (see, for example, Japanese Laid-open Patent Publication Nos. 63-308800 and 58-105498).
Reliability of data transmission may be improved by error detection and correction using ECC compared with, for example, methods of detecting errors using parity bits. Meanwhile, error detection and correction using ECC is complicated due to data convolution operations included in the process, resulting in an increase in the scale of circuits that implement the process.